package org.domain.sigepac;

import java.util.List;

import org.domain.sigepac.Entity.Alfabetizador;
import org.domain.sigepac.Entity.AreaInteresse;
import org.domain.sigepac.Entity.Campus;
import org.domain.sigepac.Entity.Cidade;
import org.domain.sigepac.Entity.Cor;
import org.domain.sigepac.Entity.Curso;
import org.domain.sigepac.Entity.Declaracao;
import org.domain.sigepac.Entity.MotivoDestino;
import org.domain.sigepac.Entity.DiasFuncionamento;
import org.domain.sigepac.Entity.Escolaridade;
import org.domain.sigepac.Entity.GrupoDestino;
import org.domain.sigepac.Entity.GrupoEvasao;
import org.domain.sigepac.Entity.GrupoPsicogenese;
import org.domain.sigepac.Entity.HorasDisponiveis;
import org.domain.sigepac.Entity.LocalFuncionamento;
import org.domain.sigepac.Entity.MotivoEvasao;
import org.domain.sigepac.Entity.NecessidadesEspeciais;
import org.domain.sigepac.Entity.Parceiro;
import org.domain.sigepac.Entity.Professor;
import org.domain.sigepac.Entity.Psicogenese;
import org.domain.sigepac.Entity.SegmentoSocial;
import org.domain.sigepac.Entity.Sexo;
import org.domain.sigepac.Entity.SituacaoOcupacional;
import org.domain.sigepac.Entity.TipoCurso;
import org.domain.sigepac.Entity.TipoParceiro;
import org.domain.sigepac.Entity.TipoUsuario;
import org.domain.sigepac.Entity.Turno;
import org.domain.sigepac.Entity.Uf;
import org.domain.sigepac.Entity.Visita;
import org.domain.sigepac.Entity.Voluntario;
import org.domain.sigepac.Entity.ZonaAtuacao;
import org.domain.sigepac.repository.RepositorioAlfabetizador;
import org.domain.sigepac.repository.RepositorioCampus;
import org.domain.sigepac.repository.RepositorioCidade;
import org.domain.sigepac.repository.RepositorioCurso;
import org.domain.sigepac.repository.RepositorioDeclaracao;
import org.domain.sigepac.repository.RepositorioMotivoDestino;
import org.domain.sigepac.repository.RepositorioGrupoDestino;
import org.domain.sigepac.repository.RepositorioGrupoEvasao;
import org.domain.sigepac.repository.RepositorioGrupoPsicogenese;
import org.domain.sigepac.repository.RepositorioMotivoEvasao;
import org.domain.sigepac.repository.RepositorioParceiro;
import org.domain.sigepac.repository.RepositorioProfessor;
import org.domain.sigepac.repository.RepositorioPsicogenese;
import org.domain.sigepac.repository.RepositorioUsuario;
import org.domain.sigepac.repository.RepositorioVisita;
import org.domain.sigepac.repository.RepositorioVoluntario;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.AutoCreate;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;


@Name("factories")
@Scope(ScopeType.APPLICATION)
@AutoCreate
public class Factories {

	@In
	private RepositorioCidade repositorioCidade;

	@In
	private RepositorioCampus repositorioCampus;

	@In
	private RepositorioCurso repositorioCurso;

	@In
	private RepositorioVoluntario repositorioVoluntario;

	@In
	private RepositorioUsuario repositorioUsuario;

	@In
	private RepositorioProfessor repositorioProfessor;

	@In
	private RepositorioAlfabetizador repositorioAlfabetizador;

	@In
	private RepositorioParceiro repositorioParceiro;

	@In
	private RepositorioMotivoEvasao repositorioMotivoEvasao;


	@In
	private RepositorioPsicogenese repositorioPsicogenese;

	@In
	private RepositorioGrupoPsicogenese repositorioGrupoPsicogenese;

	@In
	private RepositorioDeclaracao repositorioDeclaracao;

	@In
	private RepositorioGrupoEvasao repositorioGrupoEvasao;

	@In
	private RepositorioGrupoDestino repositorioGrupoDestino;

	@In
	private RepositorioMotivoDestino repositorioMotivoDestino;

	@In
	private RepositorioVisita repositorioVisita;

	public Uf[] getUfs(){
		return Uf.values();
	}

	public Sexo[] getSexos(){
		return Sexo.values();
	}

	public List<MotivoEvasao> getMotivosEvasoes(){
		return repositorioMotivoEvasao.listar();
	}

	public List<MotivoDestino> getMotivosDestinos(){
		return repositorioMotivoDestino.listar();
	}

	public List<Psicogenese> getPsicogeneses(){
		return repositorioPsicogenese.listar();
	}

	public List<GrupoPsicogenese> getGruposPsicogeneses(){
		return repositorioGrupoPsicogenese.listar();
	}

	public List<Cidade> getCidades(){
		return repositorioCidade.listar();
	}

	public List<Curso> getCursos(){
		return repositorioCurso.listar();
	}

	public List<Campus> getCampi(){

		return repositorioCampus.listar();

	}

	public List<Parceiro> getParceiros(){
		return repositorioParceiro.listar();
	}

	public TipoUsuario[] getTipoUsuarios(){
		return TipoUsuario.values();
	}

	public AreaInteresse[] getAreasInteresse(){
		return AreaInteresse.values();
	}

	public Turno[] getTurnos(){
		return Turno.values();
	}

	public HorasDisponiveis[] getHorasDisponiveis(){
		return HorasDisponiveis.values();
	}

	public DiasFuncionamento[] getDiasFuncionamento(){
		return DiasFuncionamento.values();
	}

	public ZonaAtuacao[] getZonaAtuacoes(){
		return ZonaAtuacao.values();
	}

	public SituacaoOcupacional[] getSituacoesOcupacionais(){
		return SituacaoOcupacional.values();
	}

	public Escolaridade[] getEscolaridades(){
		return Escolaridade.values();
	}

	public LocalFuncionamento[] getLocaisFuncionamento(){
		return LocalFuncionamento.values();
	}

	public TipoCurso[] getTipoCursos(){
		return TipoCurso.values();
	}

	public List<Voluntario> getVoluntarios(){
		return repositorioVoluntario.listar();
	}

	public List<Professor> getProfessores(){
		return repositorioProfessor.listar();
	}

	public List<Alfabetizador> getAlfabetizadores(){
		return repositorioAlfabetizador.listar();
	}

	public Cor[] getCores(){
		return Cor.values();
	}

	public SegmentoSocial[] getSegmentosSociais(){
		return SegmentoSocial.values();
	}

	public NecessidadesEspeciais[] getNecessidadesEspeciais(){
		return NecessidadesEspeciais.values();
	}

	public List<Declaracao> getDeclaracoes(){
		return repositorioDeclaracao.listar();
	}

	public List<GrupoEvasao> getGruposEvasoes(){
		return repositorioGrupoEvasao.listar();
	}

	public List<GrupoDestino> getGruposDestinos(){
		return repositorioGrupoDestino.listar();
	}

	public TipoParceiro[] getTipoParceiros(){
		return TipoParceiro.values();
	}

	public List<Visita> getVisitas(){
		return repositorioVisita.listar();
	}
}
